Elasticsearch Bulk API允许批量提交index和delete请求。
1 | BulkRequestBuilder bulkRequest = client.prepareBulk(); |
但有时我们需要更精细的批量操控,比如
1 | BulkProcessor bulkProcessor = BulkProcessor.builder( |
- beforeBulk会在批量提交之前执行,可以从BulkRequest中获取请求信息request.requests()或者请求数量request.numberOfActions()。
- 第一个afterBulk会在批量成功后执行,可以跟beforeBulk配合计算批量所需时间
- 第二个afterBulk会在批量失败后执行
- 在例子中,当请求超过10000个(default=1000)或者总大小超过1GB(default=5MB)时,触发批量提交动作。另外每隔5秒也会提交一次(默认不会根据时间间隔提交)。